// 类：可以理解为模板，通过模板可以实例化对象
// 面向对象的编程思想
;(() => {
  class Person {
    //定义属性
    name: String
    age: Number
    gender: String
    // 定义构造函数:为了将来实例化对象的时候，可以直接对属性的值进行初始化
    constructor(
      name: string = '胭脂',
      age: number = 18,
      gender: string = '男'
    ) {
      // 更新对象中属性数据
      this.name = name
      this.age = age
      this.gender = gender
    }
    // 定义实例方法
    sayHi(str?: string) {
      console.log(this.name, this.age, this.gender, str)
    }
  }
  const person = new Person()
  console.log(person)
  person.sayHi()
})()
